As computer network applications increase in capabilities and functionality, the speed of information transfer between system devices, or between a network server and system devices, becomes more and more important. Inefficiencies in information transfer systems are multiplied depending upon the complexity of the network and the number and complexity of the applications and devices being run on the system. The popularity and growth of multimedia computing in general, and especially in network multimedia computing, has increased the need to optimize information transfer efficiencies in order to improve system speed, especially with increased amounts of data and information being transferred between network devices.
Multimedia data and files are typically transferred between a server device and a client device intact. There is generally no need for the server application code to copy or modify the data being transferred. Current multimedia servers, however, copy the data in accomplishing data transfer transactions. This produces a severe performance problem in the entire network. For example, with the UNIX read/write processed-based I/O model, a response to a READ system call, moves the requested data from a device into network server kernel buffers, and then copies the data into designated user memory space. The user process is then dispatched to, and issues a WRITE system call, resulting in the data being copied back from user space to kernel buffers, and then out again to the device. Thus data is caused to cross the I/O bus twice, and there must be a dispatch to a process for each block of data.
Thus there is a need for an improved method and processing apparatus which is effective to increase the efficiency of network information transfers and implement a processing subsystem effective to avoid unnecessary copying of data in data transfer transactions.